'''
双循环 因为时间复杂度的问题 只能跑通小数据
关于双循环中 内外层的问题

外层变化的慢,内层变化的快
1、最终要统计的什么 ——外层
2、内层用来查找
'''

def findContentChildren(g, s):
    g.sort()  # 排序，方便找最小满足的
    s.sort()
    
    count = 0
    used = [False] * len(s)  # 标记饼干是否被用过
    
    for child in g:
        for j in range(len(s)):
            if not used[j] and s[j] >= child:
                used[j] = True
                count += 1
                break  # 找到就退出内层循环
    
    return count


'''
使用 贪心
优先满足“胃口小”的孩子，用能满足他但尺寸尽可能小的饼干，把大的饼干留给后面胃口大的孩子

将孩子的胃口值 g 和饼干尺寸 s 都从小到大排序。
用两个指针：

    i 指向当前考虑的孩子
    j 指向当前考虑的饼干

遍历饼干：
    如果当前饼干能满足当前孩子s[j] >= g[i]，就分配 i += 1
    无论是否满足j += 1  每个饼干只能用一次

最终 i 就是满足的孩子数量
'''
def findContentChildren(g, s):
    g.sort()
    s.sort()
    
    j=0
    i=0 ## 指向 child
    
    while i < len(g) and j < len(s):
        if s[j] >= g[i]:
            i += 1
        j+=1
    return i
